#ifndef EFFECTPOOL_H__
#define EFFECTPOOL_H__

#include <map>
#include <string>
#include <vector>

using std::map;
using std::string;
using std::vector;

#include "Effect.h"
#include "../Util/Pool.h"

class EffectPool : public Pool<Effect> {
public:
	EffectPool() = default;
	~EffectPool() = default;

	virtual void load(istream&);
};

class SpellPool : public Pool<Spell> {
private:
	EffectPool& effectPool;

public:
	SpellPool(EffectPool& effectPool) : Pool(), effectPool(effectPool) {}
	~SpellPool() = default;

	virtual void load(istream&);
};

#endif //EFFECTPOOL_H__